Through the advances in cloud computing, users may access remote computing resources over a network connection without the need to maintain physical, local resources. For example, a software developer may remotely test software on various types of hardware devices in the cloud without manually acquiring all the different types of hardware being tested. Additionally, the ability to use remote resources also provides scalability in cases where many resources are needed simultaneously. Traditionally, a client agent on a local client device may initialize a session to begin using a remote resource. The remote resource may then prepare for the session by providing the appropriate software applications or test environment.
However, given the variety of remote resources and the client devices that may need to communicate with the resources, management of both the resources and the client devices may become increasingly difficult as new resources are added to a cloud-based system. For example, client devices may require the addition of special protocols and methods to communicate with each new version of a mobile device. Furthermore, a client agent may need to wait for an initial setup of resources before being able to access and use the resources each time a new session begins. Thus, as the number and type of resources increase, client devices may interact with more complex management systems to properly utilize all of the available resources. The instant disclosure, therefore, identifies and addresses a need for better management of computing resources within a cloud-based system.